/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladora;

import bean.Persona;
import bean.Usuario;
import resources.Data;
import servicios.ServicioUsuario;
import util.StringUtils;

/**
 *
 * @author Stuk4
 */
public class ControlUsuario {

    ServicioUsuario service = new ServicioUsuario();

    /**
     * @param email
     * @param password
     */
    public void login(String email, String password){

        Usuario user = service.obtenerUsuarioLogin(email, email);
        if (user != null) {
            Data.usuarioLogueado = user;
        } else {
            System.out.println("No existe usuario!!!");
        }
    }

    /**
     * 
     * @param email
     * @param nombre
     * @param apPaterno
     * @param apMaterno
     * @param password
     * @return
     */
    public Object registrarUsuario(String email, String nombre, String apPaterno, String apMaterno, String password) {

        String observaciones = "";
        //Validaciones
        //Correo valido
        if (email != null && email.length() > 0) {
            if (StringUtils.esValidaPorRegex(email, "")) {
                if (nombre != null && nombre.length() > 0) {
                    if (apPaterno != null && apPaterno.length() > 0) {
                        if (apMaterno != null && apMaterno.length() > 0) {
                            if (password != null && StringUtils.esStringValido(password, 6)) {

                                Usuario usuario = service.obtenerUsuarioPorEmail(email);
                                if (usuario == null) {//No existe
                                    Persona persona_Usuario = new Persona(nombre, apPaterno, apMaterno);
                                    Usuario user = new Usuario(email, password, persona_Usuario);
                                    service.registrarUsuario(user);
                                    return "Registro Completo!!!";

                                } else { //Si existe x lo tanto no debe registrar
                                    observaciones = "Email ya registrado en el sistema.";
                                }

                            } else {
                                observaciones = "Contrasenia invalida, debe tener mas de 6 caracteres";
                            }
                        } else {
                            observaciones = "apMaterno Incorrecto";
                        }
                    } else {
                        observaciones = "apPaterno Incorrecto";
                    }
                } else {
                    observaciones = "Nombre Incorrecto";
                }
            } else {
                observaciones = "Es Correo invalido";
            }
        } else {
            observaciones = "No ingreso Email";

        }
        System.out.println("obs" + observaciones);

        return observaciones;

    }

    /**
     * 
     * @param email
     * @param contraseñaAntigua
     * @param contraseniaNueva
     */
    public void cambiarContrasenia(String email, String contraseñaAntigua, String contraseniaNueva) {

        if (email != null && email.length() > 0) {

            if (service.esContraseniaPorUsuario(email, contraseñaAntigua)) {
                service.cambiarContrasenia(email, contraseniaNueva);
            } else {
                System.out.println("Contrasenia incorrecta");

            }
        }

    }

    /**
     * 
     * @param email
     * @param nombre
     * @param apPaterno
     * @param apMaterno
     * @param direccion
     * @param tipoDopc
     * @param numeroDoc
     */
    public void actualizarDatosUsuario(String email, String nombre, String apPaterno, String apMaterno, String direccion, int tipoDopc, String numeroDoc) {



        Usuario user = new Usuario();
        user.setEmail(email);
        user.getUsuario().setNombre(nombre);
        user.getUsuario().setApMaterno(apMaterno);
        user.getUsuario().setApPaterno(apPaterno);
        user.getUsuario().setDireccion(direccion);
        if (tipoDopc == 1) {
            if (StringUtils.esStringValido(numeroDoc, 8, 8)) {
                user.getUsuario().setIdTipoDocumento(tipoDopc);
                user.getUsuario().setNroDocumento(numeroDoc);
                service.actualizarDatos(user);
            } else {
                System.out.println("DNI son 8 digitos");
                return;
            }

        } else {
            return;
        }
    }
}
